package ricm4.ar.tp2;
import java.net.MalformedURLException;
import java.rmi.registry.*;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;

import ricm4.ar.tp2.ISupplier;


public class Server {
  public static void main(final String args[]) {
    String nom="";
    int nombre=1; int port = 1099;
    Registry registry=null;
    // récupération des arguments
    if (args.length!=3){
      System.out.println("Server <nom générique des objets distants> <nombre de noms> <port du registry>");
      System.exit(1);
    }
    try  {
      nom = args[0];
      port = Integer.parseInt(args[1]);
      nombre = Integer.parseInt(args[2]);
    }catch(Exception e) {
      System.out.println("Server <nom générique des objets distants> <nombre de noms> <port du registry>");
      System.exit(1);
    }
    // A COMPLETER : installation du securityManager
    if(System.getSecurityManager()==null){
		System.setSecurityManager(new RMISecurityManager());
	}
    // A COMPLETER : Mise en place du registry
    try {
    		registry=LocateRegistry.createRegistry(port);
	} catch (RemoteException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}
    try {
      for(int i=1;i<=nombre;i++){
         // A COMPLETER : Construction et exportation des objets distants
    	  		ISupplier sppl=new Supplier(i);
    	  		Naming.rebind("rmi://localhost/"+nom+i, sppl);
      }
      System.out.println("Tous les objets sont enregistrés dans le serveur d'objets distants");
    } catch (Exception e) {
      System.out.println("Server err: " + e);
    }
  }
}
